package controller;

import java.util.ArrayList;
import java.util.List;

import model.ItemProovedor;
import beans.ItemProovedorBean;
import dao.HibernateItemProovedorDAO;
import dto.ItemProovedorDTO;

public class AdministradorItemProveedor {
	private static AdministradorItemProveedor instancia;

	private AdministradorItemProveedor() {

	}

	public static AdministradorItemProveedor getInstancia() {
		if (instancia == null) {
			instancia = new AdministradorItemProveedor();
		}
		return instancia;
	}

	public List<ItemProovedorBean> fromModelToBean(
			List<ItemProovedor> itemProveedors) {
		List<ItemProovedorBean> itemProveedorsBean = new ArrayList<ItemProovedorBean>();
		for (ItemProovedor itemProveedor : itemProveedors) {
			itemProveedorsBean.add(fromModelTOBean(itemProveedor));
		}
		return itemProveedorsBean;
	}

	public ItemProovedorBean fromModelTOBean(ItemProovedor itemProveedor) {
		ItemProovedorBean itemProveedorBean = null;
		if (itemProveedor != null) {
			itemProveedorBean = new ItemProovedorBean();
			itemProveedorBean.setIdItemProovedor(itemProveedor.getId());
			itemProveedorBean.setPrecio(itemProveedor.getPrecio());
			itemProveedorBean.setProovedor(AdministradorProovedor
					.getInstancia().fromModelTOBean(
							itemProveedor.getProovedor()));
		}
		return itemProveedorBean;
	}

	public List<ItemProovedor> fromDTOTOModel(
			List<ItemProovedorDTO> itemProveedorsDTO) {
		List<ItemProovedor> itemProveedors = new ArrayList<ItemProovedor>();
		for (ItemProovedorDTO itemProveedorDTO : itemProveedorsDTO) {
			itemProveedors.add(fromDTOTOModel(itemProveedorDTO));
		}
		return itemProveedors;
	}

	public ItemProovedor fromDTOTOModel(ItemProovedorDTO itemProveedorDTO) {
		ItemProovedor itemProveedor = null;
		if (itemProveedorDTO != null) {
			itemProveedor = new ItemProovedor();
			itemProveedor.setId(itemProveedorDTO.getId());
			itemProveedor.setPrecio(itemProveedorDTO.getPrecio());
			itemProveedor.setProovedor(AdministradorProovedor.getInstancia()
					.fromDTOTOModel(itemProveedorDTO.getProovedor()));

		}
		return itemProveedor;
	}

	public List<ItemProovedorDTO> fromModelTODTO(
			List<ItemProovedor> itemProveedors) {
		List<ItemProovedorDTO> itemProveedorsDTO = new ArrayList<ItemProovedorDTO>();
		for (ItemProovedor itemProveedor : itemProveedors) {
			itemProveedorsDTO.add(fromModelTODTO(itemProveedor));
		}
		return itemProveedorsDTO;
	}

	public ItemProovedorDTO fromModelTODTO(ItemProovedor itemProveedor) {
		ItemProovedorDTO itemProveedorDTO = null;
		if (itemProveedor != null) {
			itemProveedorDTO = new ItemProovedorDTO();
			itemProveedorDTO.setId(itemProveedor.getId());
			itemProveedorDTO.setPrecio(itemProveedor.getPrecio());
			itemProveedorDTO.setProovedor(AdministradorProovedor.getInstancia()
					.fromModelTODTO(itemProveedor.getProovedor()));

		}
		return itemProveedorDTO;
	}

	public List<ItemProovedor> fromBeanTOModel(
			List<ItemProovedorBean> itemProveedorsBean) {
		List<ItemProovedor> itemProveedors = new ArrayList<ItemProovedor>();
		for (ItemProovedorBean itemProveedorBean : itemProveedorsBean) {
			itemProveedors.add(fromBeanTOModel(itemProveedorBean));
		}
		return itemProveedors;
	}

	public ItemProovedor fromBeanTOModel(ItemProovedorBean itemProveedorBean) {
		ItemProovedor itemProveedor = null;
		if (itemProveedorBean != null) {
			itemProveedor = new ItemProovedor();
			itemProveedor.setId(itemProveedorBean.getIdItemProovedor());
			itemProveedor.setPrecio(itemProveedorBean.getPrecio());
			itemProveedor.setProovedor(AdministradorProovedor.getInstancia()
					.fromBeanTOModel(itemProveedorBean.getProovedor()));
		}
		return itemProveedor;
	}

	public void grabarItemProovedor(ItemProovedor itemProveedor) {
		ItemProovedorBean fb = fromModelTOBean(itemProveedor);
		HibernateItemProovedorDAO.getInstancia().grabarItemProovedor(fb);

	}

	public ItemProovedor buscarItemProovedor(ItemProovedor f) {
		ItemProovedorBean fb = fromModelTOBean(f);
		fb = HibernateItemProovedorDAO.getInstancia().buscarItemProovedor(fb);
		return fromBeanTOModel(fb);
	}

	public List<ItemProovedorBean> fromModelTOBean(List<ItemProovedor> items) {
		List<ItemProovedorBean> itemsbean = new ArrayList<ItemProovedorBean>();
		for (ItemProovedor itemProovedor : items) {
			ItemProovedorBean itemb = fromModelTOBean(itemProovedor);
			itemsbean.add(itemb);
		}
		return itemsbean;
	}

}
